Custom sight XML note:
Avoid using following IDs for based_on: wpn_fps_upg_o_specter, wpn_fps_upg_o_shortdot, wpn_fps_upg_o_leupold, wpn_fps_upg_o_acog, wpn_fps_upg_o_cs, wpn_fps_upg_o_spot, wpn_fps_upg_o_box, wpn_fps_upg_o_bmg.
These sights has defined objects for VR client and will crash if they are missing (Classic overkill).

Before doing anything:
Replace every instance of "YOUR_SIGHT_NAME" in files with new sight ID.

Files explained:
Custom stance_mod script/weaponfactorytweakdata.lua - Allows to easily adjust weapons stance_mod values with defined offset. Note: If you using latest sight template remove inherit_parts_override="true from sight XML.
Sight asset files - Self explanatory.
PD2 lens op textures/*.dds - Lens transparency textures used in PD2.
model_tool_settings.png - Settings you need to set in Model Tool.
refrence_sight_model.blend - This is example sight replace it with own model. You can reuse some of defined materials as these used in "Sight asset files".
refrence_sight_model_old.blend - Same as above but for older versions of blender.
rootpoint_sight.mscript - Mscript for creating new sight model.
rootpoint_sight_magnifier.mscript - Mscript for creating new sight model with magnifier support: Change Y position in "a_magnifier" to adjust how close/far magnifier will be attached to sight.